package router

import (
	beego "github.com/beego/beego/v2/server/web"
	web "ksd-social-api/modules/channel/controller"
)

type ChannelRouter struct {
}

/**
 * @author feige
 * @date 2023-10-14
 * @version 1.0
 * @desc 需要登录路由
 */
func (router *ChannelRouter) InitRouter() beego.LinkNamespace {
	// 用户中心--子命名空间
	namespace := beego.NSNamespace("/channel",
		// 课程点播记录学习
		beego.NSCtrlPost("list", (*web.ChannelController).FindChannels),
		// 兑换码
		beego.NSCtrlPost("code/dh", (*web.ChannelController).DuihuanChannel),
		// 币兑换
		beego.NSCtrlPost("coin/dh", (*web.ChannelController).DuihuanCoinChannel),
		beego.NSCtrlPost("/find/order", (*web.ChannelController).FindChannelOrders),
	)
	return namespace
}

/**
 * @author feige
 * @date 2023-10-14
 * @version 1.0
 * @desc  不需要登录
 */
func (router *ChannelRouter) InitNoLoginRouter() beego.LinkNamespace {
	// 用户中心--子命名空间
	namespace := beego.NSNamespace("/channel",
		// 查看课程分类明细
		beego.NSCtrlPost("list", (*web.ChannelController).FindChannels),
		beego.NSCtrlPost("/get/:id", (*web.ChannelController).GetChannels),
		beego.NSCtrlPost("zones", (*web.ChannelController).FindChannelZones),
	)
	return namespace
}

/**
 * @author feige
 * @date 2023-10-14
 * @version 1.0
 */
func (router *ChannelRouter) InitAdminRouter() beego.LinkNamespace {
	namespace := beego.NSNamespace("/adminchannel",
		// 查询列表
		beego.NSCtrlPost("/list", (*web.AdminChannelController).FindChannels),
		// 修改状态
		beego.NSCtrlPost("/update/status", (*web.AdminChannelController).UpdateFieldById),
		// 保存修改
		beego.NSCtrlPost("/saveupdate", (*web.AdminChannelController).SaveUpdateChannel),
		// 修改兑换码
		beego.NSCtrlPost("/code/update/status", (*web.AdminChannelController).UpdateFieldByCodeId),
		// 保存兑换码
		beego.NSCtrlPost("/code/saveupdate", (*web.AdminChannelController).SaveUpdateCodes),
		// 查看兑换码
		beego.NSCtrlPost("/code/list", (*web.AdminChannelController).FindCodes),
		// 批量兑换
		beego.NSCtrlPost("/batch/users", (*web.AdminChannelController).BatchSaveOrders),
		// 删除兑换码
		beego.NSCtrlPost("/code/del/:id", (*web.AdminChannelController).DelCodeById),
		// 删除
		beego.NSCtrlPost("/del/:id", (*web.AdminChannelController).DelById),
		// 复制
		beego.NSCtrlPost("/copy/:id", (*web.AdminChannelController).CopyData),
	)
	return namespace
}
